package pandora.box.ramoatividade;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.RowEditEvent;

@ManagedBean(name="ramoatividadebean")
@RequestScoped
public class RamoAtividadeBean {
	private RamoAtividade ramoatividade = new RamoAtividade();
	private List<RamoAtividade> ramoatividadeslist;
	private RamoAtividade ramoatividadeselecionado = new RamoAtividade();
	private List<RamoAtividade> rmlist;
	private Map<String, String> rmlists = new HashMap<String, String>();
	public String srm = "";
	RamoAtividadeDAOImp rmimp = new RamoAtividadeDAOImp();
	List<RamoAtividade> ramoatividadelist 		= null;
	List<RamoAtividade> ramoatividadelistativo 	= null;
	private boolean ratividade = true;
	
	public String novo(){
		this.ramoatividade = new RamoAtividade();
		return "ramoatividade";
	}
	
	public RamoAtividadeBean(){
		ramoatividadeslist 		= new ArrayList<RamoAtividade>();
		if (ramoatividadeslist.isEmpty()){
			incluirramoatividade();
		}
		ListarRMAtivo();
	}
	
	public void incluirramoatividade(){
		Integer tam, i = 0;
		getListRamoAtividade();
		tam = ramoatividadelist.size();
		try {			
			while (i < tam  ){
				ramoatividadeselecionado.setIdramoatividade(ramoatividadelist.get(i).getIdramoatividade());
				ramoatividadeselecionado.setNmramoatividade(ramoatividadelist.get(i).getNmramoatividade());
				ramoatividadeselecionado.setBolativo(ramoatividadelist.get(i).getBolativo());
				ramoatividadeselecionado.setUsuarioinclusao(ramoatividadelist.get(i).getUsuarioinclusao());
				ramoatividadeselecionado.setDtinclusao(ramoatividadelist.get(i).getDtinclusao());
				ramoatividadeselecionado.setUsuarioalteracao(ramoatividadelist.get(i).getUsuarioalteracao());
				ramoatividadeselecionado.setDtalteracao(ramoatividadelist.get(i).getDtalteracao());
				ramoatividadeslist.add(ramoatividadeselecionado);
				ramoatividadeselecionado = new RamoAtividade();			
				
				i ++;
			}
		} catch (Exception e) {
			e.printStackTrace();
		};
	}
	
	public void selecionadoRamoAtividade(){
		//rmlists.
	}
	
	public List<String> ListarRMAtivo(){
	       rmlist = new ArrayList<RamoAtividade>();
	       List<String> results = new ArrayList<String>();
	       Integer tam, i = 0;
	       try {
	    	   rmlist = rmimp.listaTRamoAtividadeA();
	           tam = rmlist.size();
	           while (i < tam  ){
	        	   rmlists.put(rmlist.get(i).getNmramoatividade(), rmlist.get(i).getIdramoatividade().toString());
	        	   //rmlists.put(rmlist.get(i).getNmramoatividade(), rmlist.get(i).getNmramoatividade());
	        	   i++;
	           }
	       } catch (Exception e) {
	    	   e.printStackTrace();
	       }
	       return results;
	    }	
	
	public String inserramoatividade(){
		RamoAtividadeRN ramoatividadern = new RamoAtividadeRN();
		/**
		if (ratividade == true){
			ramoatividade.setBolativo('A');
		}else{
			ramoatividade.setBolativo('I');
		}
		**/
		ramoatividadern.inserirramoatividade(this.ramoatividade);
		ramoatividade = new RamoAtividade();
		return "inserir Ramo Atividade.";
	}
	
	public void exibirrm(){
		System.out.println("RAMO DE ATIVIDADE SELECIONADO "+srm);
	}
	
	public String ativar(){
		if(this.ramoatividade.getBolativo().equals("true"))
			this.ramoatividade.setBolativo("false");
		else
			this.ramoatividade.setBolativo("false");
		return null;
	}
	
    public void onEdit(RowEditEvent event) {  
    	String retorno = alterarramoatividade();
    	if (retorno == "true"){
            FacesMessage msg = new FacesMessage("Ramo de Atividade Alterado com sucesso.");
            FacesContext.getCurrentInstance().addMessage(null, msg);      		
    	}else{
            FacesMessage msg = new FacesMessage("Erro ao alterar o Ramo de Atividade");
            FacesContext.getCurrentInstance().addMessage(null, msg);      		    		
    	}
    }  
    
	public String alterarramoatividade(){
		String retorno = "false";
		try {
			RamoAtividadeRN ramoatividadern = new RamoAtividadeRN();
			ramoatividadern.alterarramoatividade(this.ramoatividadeselecionado);
			retorno = "true";
		} catch (Exception e) {
			e.printStackTrace();
		}		
		//ramoatividadeselecionado.
		return retorno;
	}
	
	public String excluirramoatividade(){		
		try {
			RamoAtividadeRN ramoatividadern = new RamoAtividadeRN();
			ramoatividadern.excluirramoatividade(this.ramoatividadeselecionado);
	        FacesMessage msg = new FacesMessage("Ramo de Atividade Excluso com sucesso.");
	        FacesContext.getCurrentInstance().addMessage(null, msg);  			
		} catch (Exception e) {
	        FacesMessage msg = new FacesMessage("Erro ao excluir Ramo de Atividade.");
	        FacesContext.getCurrentInstance().addMessage(null, msg);
			e.printStackTrace();
		}
		return "excluir Ramo Atividade";
	}
	
	public List<RamoAtividade> getListRamoAtividade(){
		RamoAtividadeRN ramoatividadern = new RamoAtividadeRN();
		ramoatividadelist = ramoatividadern.listaTRamoAtividade();
		return ramoatividadelist;
	}
	
	public List<RamoAtividade> getListRamoAtividadeAtivo(){
		RamoAtividadeRN ramoatividadern = new RamoAtividadeRN();
		ramoatividadelistativo = ramoatividadern.listaTRamoAtividadeAtivo();
		return ramoatividadelistativo;		
	}
		
	public List<RamoAtividade> getRamoatividadeslist() {
		return ramoatividadeslist;
	}
	
	public void setRamoatividadeslist(List<RamoAtividade> ramoatividadeslist) {
		this.ramoatividadeslist = ramoatividadeslist;
	}
	
	public RamoAtividade getRamoatividadeselecionado() {
		return ramoatividadeselecionado;
	}
	
	public void setRamoatividadeselecionado(RamoAtividade ramoatividadeselecionado) {
		this.ramoatividadeselecionado = ramoatividadeselecionado;
	}
	
	public RamoAtividade getRamoatividade() {		
		return ramoatividade;
	}
	
	public void setRamoatividade(RamoAtividade ramoatividade) {
		this.ramoatividade = ramoatividade;
	}
	
	public boolean isRatividade() {
		return ratividade;
	}
	
	public void setRatividade(boolean ratividade) {
		this.ratividade = ratividade;
	}
	
	public List<RamoAtividade> getRamoatividadelist() {
		return ramoatividadelist;
	}
	
	public void setRamoatividadelist(List<RamoAtividade> ramoatividadelist) {
		this.ramoatividadelist = ramoatividadelist;
	}
	
	public List<RamoAtividade> getRamoatividadelistativo() {
		return ramoatividadelistativo;
	}
	
	public void setRamoatividadelistativo(List<RamoAtividade> ramoatividadelistativo) {
		this.ramoatividadelistativo = ramoatividadelistativo;
	}

	public List<RamoAtividade> getRmlist() {
		return rmlist;
	}

	public void setRmlist(List<RamoAtividade> rmlist) {
		this.rmlist = rmlist;
	}

	public Map<String, String> getRmlists() {
		return rmlists;
	}

	public void setRmlists(Map<String, String> rmlists) {
		this.rmlists = rmlists;
	}
}
